/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Tree.DHTMLX.controller;

import Tree.DHTMLX.be.OpcionMenu;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Emmanuel
 */
public class TreeController {

    private List<OpcionMenu> arbol;

    public TreeController() {
        arbol = new ArrayList<OpcionMenu>();
        crearArbol();
    }

    public String imprimirArbolHtml() {
        return construirUL(crearArbolHtml(arbol));
        
    }

    public String crearArbolHtml(List<OpcionMenu> listaArbol) {
        StringBuilder sb = new StringBuilder("");
        for (OpcionMenu op : listaArbol) {
            sb.append("<li>" + op.getLabel());
            if (op.getSubOpciones() != null) {
                sb.append(construirUL(crearArbolHtml(op.getSubOpciones())));
            }
            sb.append("</li>\n");
        }
        return sb.toString();
    }

    public String construirUL(String contenido) {
        return "<ul>\n" + contenido + "</ul>\n";
    }

    public String crearHijos(List<OpcionMenu> lista) {
        return "";
    }

    public void crearArbol() {
        OpcionMenu capitulo1 = new OpcionMenu("Capítulo 1", "#");
        OpcionMenu subCapitulo1 = new OpcionMenu("Sub Capítulo 1", "#");
        capitulo1.setSubOpciones(crearSubOpciones(1, 5));
        subCapitulo1.setSubOpciones(crearSubOpciones(1, 4));
        capitulo1.getSubOpciones().add(subCapitulo1);
        OpcionMenu capitulo2 = new OpcionMenu("Capítulo 2", "#");
        capitulo2.setSubOpciones(crearSubOpciones(2, 7));
        OpcionMenu capitulo3 = new OpcionMenu("Capítulo 3", "#");
        capitulo3.setSubOpciones(crearSubOpciones(3, 9));
        arbol.add(capitulo1);
        arbol.add(capitulo2);
        arbol.add(capitulo3);
    }

    private List<OpcionMenu> crearSubOpciones(int inicio, int fin) {
        List<OpcionMenu> lista = new ArrayList<OpcionMenu>();
        for (int i = 0; i < fin; i++) {
            OpcionMenu om = new OpcionMenu("Hijo " + inicio + "." + (i + 1), "#");
            lista.add(om);
        }
        return lista;
    }

    public List<OpcionMenu> getArbol() {
        return arbol;
    }

    public void setArbol(List<OpcionMenu> arbol) {
        this.arbol = arbol;
    }
}
